--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
lang/README.ru.md v4.4.0-rc.1 (3e06f582) Text, 10.30 KB
Reticulum MeshChatX
Существенно доработанный и функционально расширенный форк Reticulum MeshChat от Liam Cottle.
Этот проект независим от оригинального Reticulum MeshChat и не связан с ним.
• Исходный код: git.quad4.io/RNS-Things/MeshChatX
• Журнал изменений: CHANGELOG.md
• TODO: TODO.md
Важные замечания
• Полная поддержка LXMF является ключевым направлением проекта.
• Хранение данных и миграции постепенно переводятся на прямой SQL (замена устаревших путей Peewee ORM).
│ [!WARNING] MeshChatX не гарантирует совместимость данных со старыми версиями Reticulum MeshChat.
│ Сделайте резервную копию перед миграцией или тестированием.
│ [!WARNING] Устаревшие системы пока не полностью поддерживаются. Текущие требования: Python T383838>=3.11
│ и Node T383838>=24.
Демо и скриншоты
<video src="https://strg.0rbitzer0.net/raw/62926a2a-0a9a-4f44-a5f6-000dd60deac1.mp4" controls="controls" style="max-width: 100%;"></video>
Интерфейс
Требования
• Python T383838>=3.11 (из T383838pyproject.toml)
• Node.js T383838>=24 (из T383838package.json)
• pnpm T38383810.32.1 (из T383838package.json)
• Poetry (используется в T383838Taskfile.yml и CI)
Способы установки
┌─────────────────────┬─────────────────────┬──────────────┬───────────────────────────────────────┐
│ Метод │ Включает фронтенд │ Архитектуры │ Лучше всего подходит для │
├─────────────────────┼─────────────────────┼──────────────┼───────────────────────────────────────┤
│ Docker-образ │ Да │ T383838linux/amd64… │ Быстрый запуск на серверах Linux │
│ Python wheel (T383838.whl) │ Да │ Любая архит… │ Безголовый/веб-сервер без сборки Node │
│ Linux AppImage │ Да │ T383838x64, T383838arm64 │ Портативное использование на ПК │
│ Debian-пакет (T383838.deb) │ Да │ T383838x64, T383838arm64 │ Установка на Debian/Ubuntu │
│ RPM-пакет (T383838.rpm) │ Да │ Зависит от … │ Fedora/RHEL/openSUSE │
│ Из исходников │ Собирается локально │ Архитектура… │ Разработка и кастомные сборки │
└─────────────────────┴─────────────────────┴──────────────┴───────────────────────────────────────┘
Примечания:
• CI явно собирает Linux T383838x64 и T383838arm64 AppImage + DEB.
• RPM также создается при сборке релиза и загружается, если успешно.
Быстрый старт: Docker
T282828
docker compose up -d
Compose-файл по умолчанию:
• T383838127.0.0.1:8000 на хосте -> порт T3838388000 контейнера
• T383838./meshchat-config -> T383838/config для хранения данных
Если возникают ошибки прав доступа:
T282828
sudo chown -R T79c0ff1000:1000 ./meshchat-config
Установка из релизных артефактов
1) Linux AppImage (x64/arm64)
1. Скачайте T383838ReticulumMeshChatX-v<версия>-linux-<арх>.AppImage из релизов.
2. Сделайте исполняемым и запустите:
T282828
chmod +x ./ReticulumMeshChatX-v*-linux-*.AppImage
./ReticulumMeshChatX-v*-linux-*.AppImage
2) Debian/Ubuntu T383838.deb (x64/arm64)
1. Скачайте T383838ReticulumMeshChatX-v<версия>-linux-<арх>.deb.
2. Установите:
T282828
sudo apt install ./ReticulumMeshChatX-v*-linux-*.deb
3) RPM-системы
1. Скачайте T383838ReticulumMeshChatX-v<версия>-linux-<арх>.rpm, если есть в релизе.
2. Установите:
T282828
sudo rpm -Uvh ./ReticulumMeshChatX-v*-linux-*.rpm
4) Python wheel (T383838.whl)
Wheel-пакеты из релизов включают собранный фронтенд.
T282828
pip install ./reticulum_meshchatx-*-py3-none-any.whl
meshchat --headless
T383838pipx также поддерживается:
T282828
pipx install ./reticulum_meshchatx-*-py3-none-any.whl
Запуск из исходников (режим веб-сервера)
T282828
git clone https://git.quad4.io/RNS-Things/MeshChatX.git
Tffa657cd MeshChatX
corepack Tffa657enable
pnpm install
pip install poetry
poetry install
pnpm run build-frontend
poetry run meshchat --headless --host T79c0ff127.0.0.1
Запуск в песочнице (Linux)
Чтобы запускать нативный бинарник T383838meshchat с дополнительной изоляцией файловой системы, можно использовать Firejail или Bubblewrap (T383838bwrap), сохраняя обычный сетевой доступ для Reticulum и веб-интерфейса. Полные примеры (pip/pipx, Poetry, заметки про USB-serial) в:
Та же страница отображается во встроенном разделе Документация (документация MeshChatX), когда она отдаётся из входящих в сборку или синхронизируемых файлов T383838meshchatx-docs.
Сборка пакетов из исходников
Linux x64 AppImage + DEB
T282828
pnpm run dist:linux-x64
Linux arm64 AppImage + DEB
T282828
pnpm run dist:linux-arm64
RPM
T282828
pnpm run dist:rpm
Поддержка архитектур
• Docker: T383838amd64, T383838arm64
• Linux AppImage: T383838x64, T383838arm64
• Linux DEB: T383838x64, T383838arm64
• Windows: T383838x64, T383838arm64 (скрипты сборки доступны)
• macOS: скрипты сборки доступны (T383838arm64, T383838universal)
• Android: проект и CI-воркфлоу присутствуют в репозитории
Android
Конфигурация
┌───────────────┬──────────────────────┬──────────────┬────────────────────────────────────┐
│ Аргумент │ Переменная окружения │ По умолчанию │ Описание │
├───────────────┼──────────────────────┼──────────────┼────────────────────────────────────┤
│ T383838--host │ T383838MESHCHAT_HOST │ T383838127.0.0.1 │ Адрес привязки веб-сервера │
│ T383838--port │ T383838MESHCHAT_PORT │ T3838388000 │ Порт веб-сервера │
│ T383838--no-https │ T383838MESHCHAT_NO_HTTPS │ T383838false │ Отключить HTTPS │
│ T383838--headless │ T383838MESHCHAT_HEADLESS │ T383838false │ Не открывать браузер автоматически │
│ T383838--auth │ T383838MESHCHAT_AUTH │ T383838false │ Включить базовую аутентификацию │
│ T383838--storage-dir │ T383838MESHCHAT_STORAGE_DIR │ T383838./storage │ Директория данных │
│ T383838--public-dir │ T383838MESHCHAT_PUBLIC_DIR │ авто │ Директория фронтенд-файлов │
└───────────────┴──────────────────────┴──────────────┴────────────────────────────────────┘
Ветки
┌────────┬───────────────────────────────────────────────────────────────────────────┐
│ Ветка │ Назначение │
├────────┼───────────────────────────────────────────────────────────────────────────┤
│ T383838master │ Стабильные релизы. Только готовый к продакшену код. │
│ T383838dev │ Активная разработка. Может содержать нестабильные или неполные изменения. │
└────────┴───────────────────────────────────────────────────────────────────────────┘
Разработка
T282828
task install
task lint:all
task test:all
task build:all
Безопасность
• Встроенные проверки целостности и HTTPS/WSS по умолчанию
• CI-сканирование в T383838.gitea/workflows/
Добавление языка
Обнаружение локалей происходит автоматически. Для добавления нового языка достаточно одного JSON-файла:
1. Сгенерировать шаблон из T383838en.json:
T282828
python scripts/generate_locale_template.py
2. Переименовать и переместить в каталог локалей:
T282828
mv locales.json meshchatx/src/frontend/locales/xx.json
3. Установить T383838_languageName в начале файла на название языка на этом языке (например T383838"Espanol", T383838"Francais").
4. Перевести все остальные значения.
5. Проверить соответствие ключей: T383838pnpm test -- tests/frontend/i18n.test.js --run
Никаких других изменений кода не требуется.
Авторы
• Liam Cottle - Оригинальный Reticulum MeshChat
• RFnexus - JavaScript-реализация Micron-парсера
• markqvist - Reticulum, LXMF, LXST
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────